Meilisearch 1.14
Meilisearch 1.14 引入了新的实验性功能,包括复合嵌入器和嵌入缓存以提升性能。它还增加了核心功能,例如细粒度可过滤属性和按 ID 批量检索文档。

我们很高兴宣布 Meilisearch v1.14 的发布。在本文中,我们将重点介绍此版本中的关键更改和改进。
有关所有更新和修复的完整列表,请访问 GitHub 上的变更日志。
这些强大的新功能即将登陆Meilisearch 云服务。立即注册,抢先体验最新改进!
新增:细粒度可过滤属性设置
通过 Meilisearch v1.14,您可以使用高级对象格式配置可过滤属性,从而精确指定为每个属性模式启用哪些过滤功能
{ "filterableAttributes": [ { "attributePatterns": ["genre", "artist"], "features": { "facetSearch": true, "filter": {"equality": true, "comparison": false } } }, { "attributePatterns": ["*rank"], "features": { "facetSearch": false, "filter": {"equality": true, "comparison": true } } }, { "attributePatterns": ["albumId"], "features": { "facetSearch": false, "filter": {"equality": true, "comparison": false } } }, ] }
- 字符串属性(例如,
genre
、artist
):为类别过滤启用分面搜索和相等运算符(=
/!=
),同时禁用比较运算符(>
、<
、>=
、<=
),因为它们对于字符串值来说是不必要的。 - 数值属性(例如,
*rank
):为范围过滤启用比较运算符(>
、<
、>=
、<=
),同时禁用分面搜索,因为它与数值数据无关。 - 唯一标识符(例如,
albumId
):为精确匹配启用相等运算符,同时禁用未使用的功能,例如比较运算符和分面搜索。
这种有针对性的配置可以显著提升索引性能。
实验性功能:复合嵌入器
Meilisearch 1.14 引入了一项新的实验性功能,允许您在搜索和索引时使用不同的嵌入器,从而优化吞吐量和延迟。
- 使用远程嵌入器进行批量索引,因为远程嵌入器提供最高的带宽(嵌入量/秒)
- 使用本地嵌入器响应搜索查询,因为本地嵌入器提供最低的延迟(首次嵌入时间)
使用新的composite
源类型配置您的嵌入器。例如,您可以结合本地 Hugging Face 模型实现快速搜索,并结合远程推理端点实现高效索引
{ "embedders": { "text": { "source": "composite", "searchEmbedder": { "source": "huggingFace", // locally computed embeddings using a model from the Hugging Face Hub "model": "baai/bge-base-en-v1.5", "revision": "a5beb1e3e68b9ab74eb54cfd186867f64f240e1a" }, "indexingEmbedder": { "source": "rest", // remotely computed embeddings using Hugging Face inference endpoints "url": "https://URL.endpoints.huggingface.cloud", "apiKey": "hf_XXXXXXX", "documentTemplate": "Your {{doc.template}}", "request": { "inputs": [ "{{text}}", "{{..}}" ] }, "response": [ "{{embedding}}", "{{..}}" ] } } } }
Meilisearch 会根据当前操作自动选择合适的嵌入器。
在您的项目概览中,勾选“实验性功能”下的“复合嵌入器”框即可激活此功能。如果您是自托管 Meilisearch,请通过 /experimental-features
路由启用它。
实验性功能:缓存嵌入
Meilisearch 1.14 带来了一项新的实验性功能,允许您缓存搜索查询嵌入,当同一查询多次运行时,显著提升性能。
要启用搜索查询嵌入缓存,请在启动 Meilisearch 时使用以下任一实例选项指定要存储在缓存中的最大条目数:
- 标志
--experimental-embedding-cache-entries=150
- 环境变量
MEILI_EXPERIMENTAL_EMBEDDING_CACHE_ENTRIES=150
启用后,Meilisearch 会存储搜索查询的嵌入向量,从而无需为相同的查询重复生成嵌入。这在以下场景中尤其有价值:
- 相同的查询频繁重复
- 您在多个索引之间使用多重搜索
- 您已实现本地分片,其中相同的查询被发送到不同的索引
新增:按 ID 获取文档
您现在可以通过主键获取一组文档
// POST /indexes/INDEX_UID/documents/fetch { "ids": [785084, 44214, 473], }
以上查询将返回相应的文档
{ "results": [ { "id": 44214, "title": "Black Swan" }, { "id": 473, "title": "Pi" }, { "id": 785084, "title": "The Whale" } ], "offset": 0, "limit": 20, "total": 3 }
致谢贡献者
我们要向促成此版本发布的贡献者们表示衷心的感谢。特别感谢 @MichaScant 在 Meilisearch 方面所做的工作,@oXtxNt9U 对 Heed 的贡献,@ptondereau 在 Arroy 方面所做的努力,以及 @NarHakobyan 和 @mosuka 对 Charabia 的贡献。我们深切感谢您的支持与合作。
v1.14 的发布就到这里了!这些发布说明仅重点介绍了最重大的更新。有关完整的列表,请查阅 GitHub 上的 变更日志 。
如需了解更多信息,请订阅我们的 每月新闻稿,或加入我们的 产品讨论。
如需其他帮助,请加入我们在 Discord 上的开发者社区。